source("../../lib/som-utils.R")
Attaching package: 'dplyr'
The following objects are masked from 'package:stats':
filter, lag
The following objects are masked from 'package:base':
intersect, setdiff, setequal, union
source("../../lib/maps-utils.R")
Linking to GEOS 3.8.0, GDAL 3.0.4, PROJ 6.3.1
mpr.set_base_path_analysis()
model <- mpr.load_model("som-377.rds.xz")
summary(model)
SOM of size 5x5 with a hexagonal topology and a bubble neighbourhood function.
The number of data layers is 1.
Distance measure(s) used: sumofsquares.
Training data included: 94881 objects.
Mean distance to the closest unit in the map: 0.005.
plot(model, type="changes")
df <- mpr.load_data("datos_mes.csv.xz")
df
summary(df)
id_estacion fecha fecha_cnt tmax
Length:94881 Length:94881 Min. : 1.000 Min. :-53.0
Class :character Class :character 1st Qu.: 4.000 1st Qu.:148.0
Mode :character Mode :character Median : 6.000 Median :198.0
Mean : 6.497 Mean :200.2
3rd Qu.: 9.000 3rd Qu.:255.0
Max. :12.000 Max. :403.0
tmin precip nevada prof_nieve
Min. :-121.00 Min. : 0.00 Min. :0.000000 Min. : 0.000
1st Qu.: 53.00 1st Qu.: 3.00 1st Qu.:0.000000 1st Qu.: 0.000
Median : 98.00 Median : 10.00 Median :0.000000 Median : 0.000
Mean : 98.86 Mean : 16.25 Mean :0.000295 Mean : 0.467
3rd Qu.: 148.00 3rd Qu.: 22.00 3rd Qu.:0.000000 3rd Qu.: 0.000
Max. : 254.00 Max. :422.00 Max. :6.000000 Max. :1834.000
longitud latitud altitud
Min. :27.82 Min. :-17.8889 Min. : 1.0
1st Qu.:38.28 1st Qu.: -5.6417 1st Qu.: 42.0
Median :40.82 Median : -3.4500 Median : 247.0
Mean :39.66 Mean : -3.4350 Mean : 418.5
3rd Qu.:42.08 3rd Qu.: 0.4914 3rd Qu.: 656.0
Max. :43.57 Max. : 4.2156 Max. :2535.0
world <- ne_countries(scale = "medium", returnclass = "sf")
spain <- subset(world, admin == "Spain")
plot(model, type="count", shape = "straight", palette.name = mpr.degrade.bleu)
NĂºmero de elementos en cada celda:
nb <- table(model$unit.classif)
print(nb)
1 2 3 4 5 6 7 8 9 10 11 12 13
2472 3209 6753 6990 18296 525 1348 4381 2819 8110 299 944 5063
14 15 16 17 18 19 20 21 22 23 24 25
2919 6230 26 171 740 6736 2726 8 62 1880 7140 5034
ComprobaciĂ³n de nodos vacĂos:
dim_model <- 5*5;
len_nb = length(nb);
empty_nodes <- dim_model != len_nb;
if (empty_nodes) {
print(paste("[Warning] Existen nodos vacĂos: ", len_nb, "/", dim_model))
}
plot(model, type="dist.neighbours", shape = "straight")
model_colnames = c("precip")
model_ncol = length(model_colnames)
plot(model, shape = "straight")
par(mfrow=c(3,4))
for (j in 1:model_ncol) {
plot(model, type="property", property=getCodes(model,1)[,j],
palette.name=mpr.coolBlueHotRed,
main=model_colnames[j],
cex=0.5, shape = "straight")
}
if (!empty_nodes) {
cor <- apply(getCodes(model,1), 2, mpr.weighted.correlation, w=nb, som=model)
print(cor)
}
precip
[1,] -0.8062561
[2,] 0.2480394
RepresentaciĂ³n de cada variable en un mapa de factores:
if (!empty_nodes) {
par(mfrow=c(1,1))
plot(cor[1,], cor[2,], xlim=c(-1,1), ylim=c(-1,1), type="n")
lines(c(-1,1),c(0,0))
lines(c(0,0),c(-1,1))
text(cor[1,], cor[2,], labels=model_colnames, cex=0.75)
symbols(0,0,circles=1,inches=F,add=T)
}
Importancia de cada variable - varianza ponderada por el tamaño de la celda:
if (!empty_nodes) {
sigma2 <- sqrt(apply(getCodes(model,1),2,function(x,effectif)
{m<-sum(effectif*(x-weighted.mean(x,effectif))^2)/(sum(effectif)-1)},
effectif=nb))
print(sort(sigma2,decreasing=T))
}
precip
0.997619
if (!empty_nodes) {
hac <- mpr.hac(model, nb)
}
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=3)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=3)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip
Min. : 1.00 Min. :-53.0 Min. :-121.00 Min. : 0.00
1st Qu.: 4.00 1st Qu.:149.0 1st Qu.: 53.00 1st Qu.: 3.00
Median : 6.00 Median :198.0 Median : 98.00 Median : 10.00
Mean : 6.49 Mean :200.5 Mean : 98.99 Mean : 15.53
3rd Qu.: 9.00 3rd Qu.:255.0 3rd Qu.: 148.00 3rd Qu.: 22.00
Max. :12.00 Max. :403.0 Max. : 254.00 Max. :105.00
nevada prof_nieve longitud latitud
Min. :0.000000 Min. : 0.0000 Min. :27.82 Min. :-17.8889
1st Qu.:0.000000 1st Qu.: 0.0000 1st Qu.:38.28 1st Qu.: -5.6417
Median :0.000000 Median : 0.0000 Median :40.82 Median : -3.1742
Mean :0.000297 Mean : 0.4493 Mean :39.65 Mean : -3.4205
3rd Qu.:0.000000 3rd Qu.: 0.0000 3rd Qu.:42.08 3rd Qu.: 0.4914
Max. :6.000000 Max. :1834.0000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 42.0
Median : 247.0
Mean : 418.6
3rd Qu.: 656.0
Max. :2535.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. :-42.0 Min. :-108.00 Min. :106.0 Min. :0
1st Qu.: 3.000 1st Qu.:118.0 1st Qu.: 55.00 1st Qu.:113.0 1st Qu.:0
Median :10.000 Median :140.0 Median : 77.50 Median :123.0 Median :0
Mean : 7.699 Mean :142.6 Mean : 76.52 Mean :129.1 Mean :0
3rd Qu.:11.000 3rd Qu.:168.0 3rd Qu.: 102.00 3rd Qu.:140.0 3rd Qu.:0
Max. :12.000 Max. :326.0 Max. : 207.00 Max. :197.0 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00 Min. :27.82 Min. :-17.889 Min. : 1.0
1st Qu.: 0.00 1st Qu.:41.14 1st Qu.: -8.616 1st Qu.: 32.0
Median : 0.00 Median :42.43 Median : -7.456 Median : 261.0
Mean : 3.63 Mean :41.28 Mean : -5.781 Mean : 397.1
3rd Qu.: 0.00 3rd Qu.:42.89 3rd Qu.: -2.039 3rd Qu.: 370.0
Max. :892.00 Max. :43.57 Max. : 3.035 Max. :2535.0
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 37.0 Min. :-11.00 Min. :200.0 Min. :0
1st Qu.: 2.000 1st Qu.:113.5 1st Qu.: 63.00 1st Qu.:213.5 1st Qu.:0
Median : 6.500 Median :127.0 Median : 75.00 Median :229.0 Median :0
Mean : 6.294 Mean :156.7 Mean : 88.91 Mean :247.2 Mean :0
3rd Qu.:10.750 3rd Qu.:174.0 3rd Qu.: 92.00 3rd Qu.:257.2 3rd Qu.:0
Max. :12.000 Max. :350.0 Max. :223.00 Max. :422.0 Max. :0
prof_nieve longitud latitud altitud
Min. :0 Min. :28.31 Min. :-16.499 Min. : 4.0
1st Qu.:0 1st Qu.:41.67 1st Qu.: -8.624 1st Qu.: 261.0
Median :0 Median :42.24 Median : -8.411 Median : 263.0
Mean :0 Mean :40.80 Mean : -6.919 Mean : 477.8
3rd Qu.:0 3rd Qu.:42.89 3rd Qu.: -2.973 3rd Qu.: 370.0
Max. :0 Max. :43.36 Max. : 2.825 Max. :2371.0
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=4)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=4)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
df.cluster04 <- subset(df, cluster==4)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster04 <- select(df.cluster04, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-47.0 Min. :-115.00 Min. : 42.00
1st Qu.: 3.000 1st Qu.:123.0 1st Qu.: 50.00 1st Qu.: 47.00
Median : 8.000 Median :154.0 Median : 78.00 Median : 54.00
Mean : 6.946 Mean :154.5 Mean : 77.76 Mean : 59.12
3rd Qu.:11.000 3rd Qu.:191.0 3rd Qu.: 110.00 3rd Qu.: 68.00
Max. :12.000 Max. :352.0 Max. : 219.00 Max. :105.00
nevada prof_nieve longitud latitud
Min. :0 Min. : 0.000 Min. :27.82 Min. :-17.8889
1st Qu.:0 1st Qu.: 0.000 1st Qu.:40.78 1st Qu.: -6.2567
Median :0 Median : 0.000 Median :42.38 Median : -3.8189
Mean :0 Mean : 2.828 Mean :41.28 Mean : -3.6088
3rd Qu.:0 3rd Qu.: 0.000 3rd Qu.:43.31 3rd Qu.: 0.3664
Max. :0 Max. :1834.000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 42.0
Median : 143.0
Mean : 448.5
3rd Qu.: 510.0
Max. :2535.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-53.0 Min. :-121.0 Min. : 0.00
1st Qu.: 4.000 1st Qu.:153.0 1st Qu.: 53.0 1st Qu.: 2.00
Median : 6.000 Median :204.0 Median : 101.0 Median : 9.00
Mean : 6.448 Mean :204.8 Mean : 100.9 Mean :11.54
3rd Qu.: 9.000 3rd Qu.:260.0 3rd Qu.: 151.0 3rd Qu.:18.00
Max. :12.000 Max. :403.0 Max. : 254.0 Max. :41.00
nevada prof_nieve longitud latitud
Min. :0.000000 Min. : 0.0000 Min. :27.82 Min. :-17.8889
1st Qu.:0.000000 1st Qu.: 0.0000 1st Qu.:37.98 1st Qu.: -5.6156
Median :0.000000 Median : 0.0000 Median :40.72 Median : -3.1742
Mean :0.000324 Mean : 0.2316 Mean :39.50 Mean : -3.4033
3rd Qu.:0.000000 3rd Qu.: 0.0000 3rd Qu.:41.88 3rd Qu.: 0.4914
Max. :6.000000 Max. :1494.0000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 42.0
Median : 247.0
Mean : 415.9
3rd Qu.: 667.0
Max. :2535.0
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. :-42.0 Min. :-108.00 Min. :106.0 Min. :0
1st Qu.: 3.000 1st Qu.:118.0 1st Qu.: 55.00 1st Qu.:113.0 1st Qu.:0
Median :10.000 Median :140.0 Median : 77.50 Median :123.0 Median :0
Mean : 7.699 Mean :142.6 Mean : 76.52 Mean :129.1 Mean :0
3rd Qu.:11.000 3rd Qu.:168.0 3rd Qu.: 102.00 3rd Qu.:140.0 3rd Qu.:0
Max. :12.000 Max. :326.0 Max. : 207.00 Max. :197.0 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00 Min. :27.82 Min. :-17.889 Min. : 1.0
1st Qu.: 0.00 1st Qu.:41.14 1st Qu.: -8.616 1st Qu.: 32.0
Median : 0.00 Median :42.43 Median : -7.456 Median : 261.0
Mean : 3.63 Mean :41.28 Mean : -5.781 Mean : 397.1
3rd Qu.: 0.00 3rd Qu.:42.89 3rd Qu.: -2.039 3rd Qu.: 370.0
Max. :892.00 Max. :43.57 Max. : 3.035 Max. :2535.0
if (!empty_nodes) summary(df.cluster04)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 37.0 Min. :-11.00 Min. :200.0 Min. :0
1st Qu.: 2.000 1st Qu.:113.5 1st Qu.: 63.00 1st Qu.:213.5 1st Qu.:0
Median : 6.500 Median :127.0 Median : 75.00 Median :229.0 Median :0
Mean : 6.294 Mean :156.7 Mean : 88.91 Mean :247.2 Mean :0
3rd Qu.:10.750 3rd Qu.:174.0 3rd Qu.: 92.00 3rd Qu.:257.2 3rd Qu.:0
Max. :12.000 Max. :350.0 Max. :223.00 Max. :422.0 Max. :0
prof_nieve longitud latitud altitud
Min. :0 Min. :28.31 Min. :-16.499 Min. : 4.0
1st Qu.:0 1st Qu.:41.67 1st Qu.: -8.624 1st Qu.: 261.0
Median :0 Median :42.24 Median : -8.411 Median : 263.0
Mean :0 Mean :40.80 Mean : -6.919 Mean : 477.8
3rd Qu.:0 3rd Qu.:42.89 3rd Qu.: -2.973 3rd Qu.: 370.0
Max. :0 Max. :43.36 Max. : 2.825 Max. :2371.0
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1], dim(df.cluster04)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03", "cluster04"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.hist(df.cluster04)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster04)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
df.cluster04.grouped <- mpr.group_by_geo(df.cluster04)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster04.grouped)
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=5)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=5)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
df.cluster04 <- subset(df, cluster==4)
df.cluster05 <- subset(df, cluster==5)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster04 <- select(df.cluster04, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster05 <- select(df.cluster05, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-47.0 Min. :-115.00 Min. : 42.00
1st Qu.: 3.000 1st Qu.:123.0 1st Qu.: 50.00 1st Qu.: 47.00
Median : 8.000 Median :154.0 Median : 78.00 Median : 54.00
Mean : 6.946 Mean :154.5 Mean : 77.76 Mean : 59.12
3rd Qu.:11.000 3rd Qu.:191.0 3rd Qu.: 110.00 3rd Qu.: 68.00
Max. :12.000 Max. :352.0 Max. : 219.00 Max. :105.00
nevada prof_nieve longitud latitud
Min. :0 Min. : 0.000 Min. :27.82 Min. :-17.8889
1st Qu.:0 1st Qu.: 0.000 1st Qu.:40.78 1st Qu.: -6.2567
Median :0 Median : 0.000 Median :42.38 Median : -3.8189
Mean :0 Mean : 2.828 Mean :41.28 Mean : -3.6088
3rd Qu.:0 3rd Qu.: 0.000 3rd Qu.:43.31 3rd Qu.: 0.3664
Max. :0 Max. :1834.000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 42.0
Median : 143.0
Mean : 448.5
3rd Qu.: 510.0
Max. :2535.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-53.0 Min. :-121.0 Min. : 0.00
1st Qu.: 4.000 1st Qu.:153.0 1st Qu.: 53.0 1st Qu.: 2.00
Median : 6.000 Median :204.0 Median : 101.0 Median : 9.00
Mean : 6.448 Mean :204.8 Mean : 100.9 Mean :11.54
3rd Qu.: 9.000 3rd Qu.:260.0 3rd Qu.: 151.0 3rd Qu.:18.00
Max. :12.000 Max. :403.0 Max. : 254.0 Max. :41.00
nevada prof_nieve longitud latitud
Min. :0.000000 Min. : 0.0000 Min. :27.82 Min. :-17.8889
1st Qu.:0.000000 1st Qu.: 0.0000 1st Qu.:37.98 1st Qu.: -5.6156
Median :0.000000 Median : 0.0000 Median :40.72 Median : -3.1742
Mean :0.000324 Mean : 0.2316 Mean :39.50 Mean : -3.4033
3rd Qu.:0.000000 3rd Qu.: 0.0000 3rd Qu.:41.88 3rd Qu.: 0.4914
Max. :6.000000 Max. :1494.0000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 42.0
Median : 247.0
Mean : 415.9
3rd Qu.: 667.0
Max. :2535.0
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. :-42.0 Min. :-108.00 Min. :106.0 Min. :0
1st Qu.: 3.000 1st Qu.:118.0 1st Qu.: 55.00 1st Qu.:113.0 1st Qu.:0
Median :10.000 Median :140.0 Median : 77.50 Median :123.0 Median :0
Mean : 7.699 Mean :142.6 Mean : 76.52 Mean :129.1 Mean :0
3rd Qu.:11.000 3rd Qu.:168.0 3rd Qu.: 102.00 3rd Qu.:140.0 3rd Qu.:0
Max. :12.000 Max. :326.0 Max. : 207.00 Max. :197.0 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00 Min. :27.82 Min. :-17.889 Min. : 1.0
1st Qu.: 0.00 1st Qu.:41.14 1st Qu.: -8.616 1st Qu.: 32.0
Median : 0.00 Median :42.43 Median : -7.456 Median : 261.0
Mean : 3.63 Mean :41.28 Mean : -5.781 Mean : 397.1
3rd Qu.: 0.00 3rd Qu.:42.89 3rd Qu.: -2.039 3rd Qu.: 370.0
Max. :892.00 Max. :43.57 Max. : 3.035 Max. :2535.0
if (!empty_nodes) summary(df.cluster04)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. :104.0 Min. : 23.00 Min. :200.0 Min. :0
1st Qu.: 2.000 1st Qu.:113.5 1st Qu.: 63.00 1st Qu.:209.2 1st Qu.:0
Median : 6.500 Median :125.5 Median : 73.50 Median :222.0 Median :0
Mean : 6.346 Mean :156.5 Mean : 88.35 Mean :223.8 Mean :0
3rd Qu.:10.750 3rd Qu.:154.5 3rd Qu.: 91.50 3rd Qu.:233.2 3rd Qu.:0
Max. :12.000 Max. :331.0 Max. :223.00 Max. :259.0 Max. :0
prof_nieve longitud latitud altitud
Min. :0 Min. :28.31 Min. :-16.499 Min. : 19.0
1st Qu.:0 1st Qu.:41.67 1st Qu.: -8.624 1st Qu.: 261.0
Median :0 Median :42.24 Median : -8.411 Median : 263.0
Mean :0 Mean :40.89 Mean : -6.862 Mean : 473.1
3rd Qu.:0 3rd Qu.:42.89 3rd Qu.: -3.579 3rd Qu.: 370.0
Max. :0 Max. :43.30 Max. : 2.825 Max. :2371.0
if (!empty_nodes) summary(df.cluster05)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 37.0 Min. :-11.00 Min. :279.0 Min. :0
1st Qu.: 2.750 1st Qu.:108.2 1st Qu.: 49.75 1st Qu.:294.2 1st Qu.:0
Median : 5.500 Median :127.0 Median : 78.50 Median :307.0 Median :0
Mean : 6.125 Mean :157.5 Mean : 90.75 Mean :323.1 Mean :0
3rd Qu.: 9.000 3rd Qu.:194.0 3rd Qu.:137.25 3rd Qu.:332.8 3rd Qu.:0
Max. :12.000 Max. :350.0 Max. :204.00 Max. :422.0 Max. :0
prof_nieve longitud latitud altitud
Min. :0 Min. :28.31 Min. :-16.499 Min. : 4.0
1st Qu.:0 1st Qu.:41.42 1st Qu.: -8.649 1st Qu.: 19.0
Median :0 Median :42.33 Median : -8.517 Median : 262.0
Mean :0 Mean :40.50 Mean : -7.103 Mean : 493.2
3rd Qu.:0 3rd Qu.:42.54 3rd Qu.: -2.827 3rd Qu.: 437.2
Max. :0 Max. :43.36 Max. : -1.033 Max. :2371.0
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1], dim(df.cluster04)[1], dim(df.cluster05)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03", "cluster04", "cluster05"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.hist(df.cluster04)
if (!empty_nodes) mpr.hist(df.cluster05)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster04)
if (!empty_nodes) mpr.boxplot(df.cluster05)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
df.cluster04.grouped <- mpr.group_by_geo(df.cluster04)
df.cluster05.grouped <- mpr.group_by_geo(df.cluster05)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster04.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster05.grouped)
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=6)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=6)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
df.cluster04 <- subset(df, cluster==4)
df.cluster05 <- subset(df, cluster==5)
df.cluster06 <- subset(df, cluster==6)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster04 <- select(df.cluster04, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster05 <- select(df.cluster05, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster06 <- select(df.cluster06, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-47.0 Min. :-115.00 Min. : 42.00
1st Qu.: 3.000 1st Qu.:123.0 1st Qu.: 50.00 1st Qu.: 47.00
Median : 8.000 Median :154.0 Median : 78.00 Median : 54.00
Mean : 6.946 Mean :154.5 Mean : 77.76 Mean : 59.12
3rd Qu.:11.000 3rd Qu.:191.0 3rd Qu.: 110.00 3rd Qu.: 68.00
Max. :12.000 Max. :352.0 Max. : 219.00 Max. :105.00
nevada prof_nieve longitud latitud
Min. :0 Min. : 0.000 Min. :27.82 Min. :-17.8889
1st Qu.:0 1st Qu.: 0.000 1st Qu.:40.78 1st Qu.: -6.2567
Median :0 Median : 0.000 Median :42.38 Median : -3.8189
Mean :0 Mean : 2.828 Mean :41.28 Mean : -3.6088
3rd Qu.:0 3rd Qu.: 0.000 3rd Qu.:43.31 3rd Qu.: 0.3664
Max. :0 Max. :1834.000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 42.0
Median : 143.0
Mean : 448.5
3rd Qu.: 510.0
Max. :2535.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-53.0 Min. :-121.0 Min. : 0.00
1st Qu.: 4.000 1st Qu.:153.0 1st Qu.: 53.0 1st Qu.: 2.00
Median : 6.000 Median :204.0 Median : 101.0 Median : 9.00
Mean : 6.448 Mean :204.8 Mean : 100.9 Mean :11.54
3rd Qu.: 9.000 3rd Qu.:260.0 3rd Qu.: 151.0 3rd Qu.:18.00
Max. :12.000 Max. :403.0 Max. : 254.0 Max. :41.00
nevada prof_nieve longitud latitud
Min. :0.000000 Min. : 0.0000 Min. :27.82 Min. :-17.8889
1st Qu.:0.000000 1st Qu.: 0.0000 1st Qu.:37.98 1st Qu.: -5.6156
Median :0.000000 Median : 0.0000 Median :40.72 Median : -3.1742
Mean :0.000324 Mean : 0.2316 Mean :39.50 Mean : -3.4033
3rd Qu.:0.000000 3rd Qu.: 0.0000 3rd Qu.:41.88 3rd Qu.: 0.4914
Max. :6.000000 Max. :1494.0000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 42.0
Median : 247.0
Mean : 415.9
3rd Qu.: 667.0
Max. :2535.0
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip nevada
Min. : 1.00 Min. :-42.0 Min. :-108.00 Min. :106.0 Min. :0
1st Qu.: 3.00 1st Qu.:119.0 1st Qu.: 56.25 1st Qu.:112.0 1st Qu.:0
Median :10.00 Median :142.0 Median : 79.00 Median :120.0 Median :0
Mean : 7.66 Mean :144.7 Mean : 77.92 Mean :123.4 Mean :0
3rd Qu.:11.00 3rd Qu.:170.0 3rd Qu.: 104.00 3rd Qu.:133.0 3rd Qu.:0
Max. :12.00 Max. :326.0 Max. : 207.00 Max. :155.0 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00 Min. :27.82 Min. :-17.889 Min. : 1.0
1st Qu.: 0.00 1st Qu.:41.29 1st Qu.: -8.616 1st Qu.: 32.0
Median : 0.00 Median :42.43 Median : -7.202 Median : 251.0
Mean : 2.57 Mean :41.32 Mean : -5.731 Mean : 375.9
3rd Qu.: 0.00 3rd Qu.:42.89 3rd Qu.: -2.039 3rd Qu.: 370.0
Max. :892.00 Max. :43.57 Max. : 3.035 Max. :2535.0
if (!empty_nodes) summary(df.cluster04)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. :104.0 Min. : 23.00 Min. :200.0 Min. :0
1st Qu.: 2.000 1st Qu.:113.5 1st Qu.: 63.00 1st Qu.:209.2 1st Qu.:0
Median : 6.500 Median :125.5 Median : 73.50 Median :222.0 Median :0
Mean : 6.346 Mean :156.5 Mean : 88.35 Mean :223.8 Mean :0
3rd Qu.:10.750 3rd Qu.:154.5 3rd Qu.: 91.50 3rd Qu.:233.2 3rd Qu.:0
Max. :12.000 Max. :331.0 Max. :223.00 Max. :259.0 Max. :0
prof_nieve longitud latitud altitud
Min. :0 Min. :28.31 Min. :-16.499 Min. : 19.0
1st Qu.:0 1st Qu.:41.67 1st Qu.: -8.624 1st Qu.: 261.0
Median :0 Median :42.24 Median : -8.411 Median : 263.0
Mean :0 Mean :40.89 Mean : -6.862 Mean : 473.1
3rd Qu.:0 3rd Qu.:42.89 3rd Qu.: -3.579 3rd Qu.: 370.0
Max. :0 Max. :43.30 Max. : 2.825 Max. :2371.0
if (!empty_nodes) summary(df.cluster05)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 37.0 Min. :-11.00 Min. :279.0 Min. :0
1st Qu.: 2.750 1st Qu.:108.2 1st Qu.: 49.75 1st Qu.:294.2 1st Qu.:0
Median : 5.500 Median :127.0 Median : 78.50 Median :307.0 Median :0
Mean : 6.125 Mean :157.5 Mean : 90.75 Mean :323.1 Mean :0
3rd Qu.: 9.000 3rd Qu.:194.0 3rd Qu.:137.25 3rd Qu.:332.8 3rd Qu.:0
Max. :12.000 Max. :350.0 Max. :204.00 Max. :422.0 Max. :0
prof_nieve longitud latitud altitud
Min. :0 Min. :28.31 Min. :-16.499 Min. : 4.0
1st Qu.:0 1st Qu.:41.42 1st Qu.: -8.649 1st Qu.: 19.0
Median :0 Median :42.33 Median : -8.517 Median : 262.0
Mean :0 Mean :40.50 Mean : -7.103 Mean : 493.2
3rd Qu.:0 3rd Qu.:42.54 3rd Qu.: -2.827 3rd Qu.: 437.2
Max. :0 Max. :43.36 Max. : -1.033 Max. :2371.0
if (!empty_nodes) summary(df.cluster06)
fecha_cnt tmax tmin precip nevada
Min. : 1 Min. : -8.0 Min. :-58.00 Min. :156.0 Min. :0
1st Qu.: 3 1st Qu.:106.2 1st Qu.: 43.25 1st Qu.:163.0 1st Qu.:0
Median :11 Median :131.5 Median : 69.50 Median :171.0 Median :0
Mean : 8 Mean :126.8 Mean : 65.87 Mean :173.0 Mean :0
3rd Qu.:11 3rd Qu.:147.8 3rd Qu.: 90.75 3rd Qu.:183.8 3rd Qu.:0
Max. :12 Max. :320.0 Max. :189.00 Max. :197.0 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00 Min. :28.31 Min. :-16.499 Min. : 4.00
1st Qu.: 0.00 1st Qu.:40.78 1st Qu.: -8.624 1st Qu.: 71.95
Median : 0.00 Median :42.24 Median : -8.411 Median : 261.00
Mean : 11.66 Mean :40.95 Mean : -6.164 Mean : 558.26
3rd Qu.: 0.00 3rd Qu.:42.89 3rd Qu.: -3.876 3rd Qu.: 370.00
Max. :607.00 Max. :43.46 Max. : 2.825 Max. :2400.00
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1], dim(df.cluster04)[1], dim(df.cluster05)[1], dim(df.cluster06)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03", "cluster04", "cluster05", "cluster06"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.hist(df.cluster04)
if (!empty_nodes) mpr.hist(df.cluster05)
if (!empty_nodes) mpr.hist(df.cluster06)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster04)
if (!empty_nodes) mpr.boxplot(df.cluster05)
if (!empty_nodes) mpr.boxplot(df.cluster06)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
df.cluster04.grouped <- mpr.group_by_geo(df.cluster04)
df.cluster05.grouped <- mpr.group_by_geo(df.cluster05)
df.cluster06.grouped <- mpr.group_by_geo(df.cluster06)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster04.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster05.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster06.grouped)
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=8)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=8)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
df.cluster04 <- subset(df, cluster==4)
df.cluster05 <- subset(df, cluster==5)
df.cluster06 <- subset(df, cluster==6)
df.cluster07 <- subset(df, cluster==7)
df.cluster08 <- subset(df, cluster==8)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster04 <- select(df.cluster04, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster05 <- select(df.cluster05, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster06 <- select(df.cluster06, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster07 <- select(df.cluster07, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster08 <- select(df.cluster08, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. :-47.0 Min. :-115.00 Min. :42.00 Min. :0
1st Qu.: 3.000 1st Qu.:125.0 1st Qu.: 50.00 1st Qu.:46.00 1st Qu.:0
Median : 7.000 Median :155.0 Median : 79.00 Median :52.00 Median :0
Mean : 6.888 Mean :156.1 Mean : 78.11 Mean :53.75 Mean :0
3rd Qu.:11.000 3rd Qu.:193.0 3rd Qu.: 110.00 3rd Qu.:60.00 3rd Qu.:0
Max. :12.000 Max. :352.0 Max. : 219.00 Max. :75.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.0 Min. :27.82 Min. :-17.8889 Min. : 1.0
1st Qu.: 0.0 1st Qu.:40.78 1st Qu.: -6.0442 1st Qu.: 42.0
Median : 0.0 Median :42.38 Median : -3.7994 Median : 143.0
Mean : 2.5 Mean :41.27 Mean : -3.4685 Mean : 451.9
3rd Qu.: 0.0 3rd Qu.:43.31 3rd Qu.: 0.4914 3rd Qu.: 513.0
Max. :1834.0 Max. :43.57 Max. : 4.2156 Max. :2535.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-53.0 Min. :-121.00 Min. :20.00
1st Qu.: 3.000 1st Qu.:137.0 1st Qu.: 50.00 1st Qu.:23.00
Median : 6.000 Median :174.0 Median : 83.00 Median :27.00
Mean : 6.469 Mean :175.1 Mean : 83.95 Mean :28.26
3rd Qu.:10.000 3rd Qu.:216.0 3rd Qu.: 120.00 3rd Qu.:33.00
Max. :12.000 Max. :355.0 Max. : 244.00 Max. :41.00
nevada prof_nieve longitud latitud
Min. :0.0000000 Min. : 0.0000 Min. :27.82 Min. :-17.8889
1st Qu.:0.0000000 1st Qu.: 0.0000 1st Qu.:39.95 1st Qu.: -5.6417
Median :0.0000000 Median : 0.0000 Median :41.63 Median : -2.9056
Mean :0.0001032 Mean : 0.6065 Mean :40.79 Mean : -2.8952
3rd Qu.:0.0000000 3rd Qu.: 0.0000 3rd Qu.:42.68 3rd Qu.: 0.7106
Max. :2.0000000 Max. :1494.0000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1
1st Qu.: 52
Median : 261
Mean : 468
3rd Qu.: 667
Max. :2535
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-46.0 Min. :-114.0 Min. : 0.000
1st Qu.: 4.000 1st Qu.:160.0 1st Qu.: 54.0 1st Qu.: 1.000
Median : 7.000 Median :216.0 Median : 109.0 Median : 6.000
Mean : 6.442 Mean :213.3 Mean : 105.8 Mean : 6.701
3rd Qu.: 9.000 3rd Qu.:271.0 3rd Qu.: 159.0 3rd Qu.:11.000
Max. :12.000 Max. :403.0 Max. : 254.0 Max. :19.000
nevada prof_nieve longitud latitud
Min. :0.000000 Min. : 0.0000 Min. :27.82 Min. :-17.8889
1st Qu.:0.000000 1st Qu.: 0.0000 1st Qu.:37.84 1st Qu.: -5.6156
Median :0.000000 Median : 0.0000 Median :40.47 Median : -3.1742
Mean :0.000388 Mean : 0.1231 Mean :39.13 Mean : -3.5503
3rd Qu.:0.000000 3rd Qu.: 0.0000 3rd Qu.:41.66 3rd Qu.: 0.4731
Max. :6.000000 Max. :1073.0000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 35.0
Median : 200.0
Mean : 400.8
3rd Qu.: 667.0
Max. :2535.0
if (!empty_nodes) summary(df.cluster04)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. :-35 Min. :-104.00 Min. : 76.00 Min. :0
1st Qu.: 3.000 1st Qu.:118 1st Qu.: 50.00 1st Qu.: 80.00 1st Qu.:0
Median : 9.000 Median :147 Median : 77.00 Median : 86.00 Median :0
Mean : 7.248 Mean :146 Mean : 75.92 Mean : 87.35 Mean :0
3rd Qu.:11.000 3rd Qu.:181 3rd Qu.: 109.00 3rd Qu.: 94.00 3rd Qu.:0
Max. :12.000 Max. :307 Max. : 219.00 Max. :105.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.000 Min. :27.82 Min. :-17.889 Min. : 1.0
1st Qu.: 0.000 1st Qu.:40.78 1st Qu.: -8.411 1st Qu.: 34.0
Median : 0.000 Median :42.43 Median : -4.010 Median : 143.0
Mean : 4.551 Mean :41.35 Mean : -4.345 Mean : 430.3
3rd Qu.: 0.000 3rd Qu.:43.31 3rd Qu.: -1.787 3rd Qu.: 370.0
Max. :784.000 Max. :43.57 Max. : 4.216 Max. :2535.0
if (!empty_nodes) summary(df.cluster05)
fecha_cnt tmax tmin precip nevada
Min. : 1.00 Min. :-42.0 Min. :-108.00 Min. :106.0 Min. :0
1st Qu.: 3.00 1st Qu.:119.0 1st Qu.: 56.25 1st Qu.:112.0 1st Qu.:0
Median :10.00 Median :142.0 Median : 79.00 Median :120.0 Median :0
Mean : 7.66 Mean :144.7 Mean : 77.92 Mean :123.4 Mean :0
3rd Qu.:11.00 3rd Qu.:170.0 3rd Qu.: 104.00 3rd Qu.:133.0 3rd Qu.:0
Max. :12.00 Max. :326.0 Max. : 207.00 Max. :155.0 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00 Min. :27.82 Min. :-17.889 Min. : 1.0
1st Qu.: 0.00 1st Qu.:41.29 1st Qu.: -8.616 1st Qu.: 32.0
Median : 0.00 Median :42.43 Median : -7.202 Median : 251.0
Mean : 2.57 Mean :41.32 Mean : -5.731 Mean : 375.9
3rd Qu.: 0.00 3rd Qu.:42.89 3rd Qu.: -2.039 3rd Qu.: 370.0
Max. :892.00 Max. :43.57 Max. : 3.035 Max. :2535.0
if (!empty_nodes) summary(df.cluster06)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. :104.0 Min. : 23.00 Min. :200.0 Min. :0
1st Qu.: 2.000 1st Qu.:113.5 1st Qu.: 63.00 1st Qu.:209.2 1st Qu.:0
Median : 6.500 Median :125.5 Median : 73.50 Median :222.0 Median :0
Mean : 6.346 Mean :156.5 Mean : 88.35 Mean :223.8 Mean :0
3rd Qu.:10.750 3rd Qu.:154.5 3rd Qu.: 91.50 3rd Qu.:233.2 3rd Qu.:0
Max. :12.000 Max. :331.0 Max. :223.00 Max. :259.0 Max. :0
prof_nieve longitud latitud altitud
Min. :0 Min. :28.31 Min. :-16.499 Min. : 19.0
1st Qu.:0 1st Qu.:41.67 1st Qu.: -8.624 1st Qu.: 261.0
Median :0 Median :42.24 Median : -8.411 Median : 263.0
Mean :0 Mean :40.89 Mean : -6.862 Mean : 473.1
3rd Qu.:0 3rd Qu.:42.89 3rd Qu.: -3.579 3rd Qu.: 370.0
Max. :0 Max. :43.30 Max. : 2.825 Max. :2371.0
if (!empty_nodes) summary(df.cluster07)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 37.0 Min. :-11.00 Min. :279.0 Min. :0
1st Qu.: 2.750 1st Qu.:108.2 1st Qu.: 49.75 1st Qu.:294.2 1st Qu.:0
Median : 5.500 Median :127.0 Median : 78.50 Median :307.0 Median :0
Mean : 6.125 Mean :157.5 Mean : 90.75 Mean :323.1 Mean :0
3rd Qu.: 9.000 3rd Qu.:194.0 3rd Qu.:137.25 3rd Qu.:332.8 3rd Qu.:0
Max. :12.000 Max. :350.0 Max. :204.00 Max. :422.0 Max. :0
prof_nieve longitud latitud altitud
Min. :0 Min. :28.31 Min. :-16.499 Min. : 4.0
1st Qu.:0 1st Qu.:41.42 1st Qu.: -8.649 1st Qu.: 19.0
Median :0 Median :42.33 Median : -8.517 Median : 262.0
Mean :0 Mean :40.50 Mean : -7.103 Mean : 493.2
3rd Qu.:0 3rd Qu.:42.54 3rd Qu.: -2.827 3rd Qu.: 437.2
Max. :0 Max. :43.36 Max. : -1.033 Max. :2371.0
if (!empty_nodes) summary(df.cluster08)
fecha_cnt tmax tmin precip nevada
Min. : 1 Min. : -8.0 Min. :-58.00 Min. :156.0 Min. :0
1st Qu.: 3 1st Qu.:106.2 1st Qu.: 43.25 1st Qu.:163.0 1st Qu.:0
Median :11 Median :131.5 Median : 69.50 Median :171.0 Median :0
Mean : 8 Mean :126.8 Mean : 65.87 Mean :173.0 Mean :0
3rd Qu.:11 3rd Qu.:147.8 3rd Qu.: 90.75 3rd Qu.:183.8 3rd Qu.:0
Max. :12 Max. :320.0 Max. :189.00 Max. :197.0 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00 Min. :28.31 Min. :-16.499 Min. : 4.00
1st Qu.: 0.00 1st Qu.:40.78 1st Qu.: -8.624 1st Qu.: 71.95
Median : 0.00 Median :42.24 Median : -8.411 Median : 261.00
Mean : 11.66 Mean :40.95 Mean : -6.164 Mean : 558.26
3rd Qu.: 0.00 3rd Qu.:42.89 3rd Qu.: -3.876 3rd Qu.: 370.00
Max. :607.00 Max. :43.46 Max. : 2.825 Max. :2400.00
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1], dim(df.cluster04)[1], dim(df.cluster05)[1], dim(df.cluster06)[1], dim(df.cluster07)[1], dim(df.cluster08)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03", "cluster04", "cluster05", "cluster06", "cluster07", "cluster08"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.hist(df.cluster04)
if (!empty_nodes) mpr.hist(df.cluster05)
if (!empty_nodes) mpr.hist(df.cluster06)
if (!empty_nodes) mpr.hist(df.cluster07)
if (!empty_nodes) mpr.hist(df.cluster08)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster04)
if (!empty_nodes) mpr.boxplot(df.cluster05)
if (!empty_nodes) mpr.boxplot(df.cluster06)
if (!empty_nodes) mpr.boxplot(df.cluster07)
if (!empty_nodes) mpr.boxplot(df.cluster08)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
df.cluster04.grouped <- mpr.group_by_geo(df.cluster04)
df.cluster05.grouped <- mpr.group_by_geo(df.cluster05)
df.cluster06.grouped <- mpr.group_by_geo(df.cluster06)
df.cluster07.grouped <- mpr.group_by_geo(df.cluster07)
df.cluster08.grouped <- mpr.group_by_geo(df.cluster08)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster04.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster05.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster06.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster07.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster08.grouped)
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=10)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=10)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
df.cluster04 <- subset(df, cluster==4)
df.cluster05 <- subset(df, cluster==5)
df.cluster06 <- subset(df, cluster==6)
df.cluster07 <- subset(df, cluster==7)
df.cluster08 <- subset(df, cluster==8)
df.cluster09 <- subset(df, cluster==9)
df.cluster10 <- subset(df, cluster==10)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster04 <- select(df.cluster04, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster05 <- select(df.cluster05, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster06 <- select(df.cluster06, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster07 <- select(df.cluster07, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster08 <- select(df.cluster08, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster09 <- select(df.cluster09, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster10 <- select(df.cluster10, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. :-39.0 Min. :-104.00 Min. :42.00 Min. :0
1st Qu.: 3.000 1st Qu.:125.0 1st Qu.: 50.00 1st Qu.:44.00 1st Qu.:0
Median : 7.000 Median :158.0 Median : 79.00 Median :48.00 Median :0
Mean : 6.836 Mean :158.7 Mean : 78.57 Mean :48.03 Mean :0
3rd Qu.:11.000 3rd Qu.:196.0 3rd Qu.: 111.00 3rd Qu.:51.00 3rd Qu.:0
Max. :12.000 Max. :352.0 Max. : 219.00 Max. :56.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.000 Min. :27.82 Min. :-17.8889 Min. : 1.0
1st Qu.: 0.000 1st Qu.:40.78 1st Qu.: -5.8792 1st Qu.: 44.0
Median : 0.000 Median :42.33 Median : -3.7003 Median : 176.0
Mean : 2.674 Mean :41.26 Mean : -3.2281 Mean : 460.6
3rd Qu.: 0.000 3rd Qu.:43.31 3rd Qu.: 0.7292 3rd Qu.: 534.0
Max. :1834.000 Max. :43.57 Max. : 4.2156 Max. :2535.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-53.0 Min. :-121.00 Min. :20.00
1st Qu.: 3.000 1st Qu.:137.0 1st Qu.: 50.00 1st Qu.:23.00
Median : 6.000 Median :174.0 Median : 83.00 Median :27.00
Mean : 6.469 Mean :175.1 Mean : 83.95 Mean :28.26
3rd Qu.:10.000 3rd Qu.:216.0 3rd Qu.: 120.00 3rd Qu.:33.00
Max. :12.000 Max. :355.0 Max. : 244.00 Max. :41.00
nevada prof_nieve longitud latitud
Min. :0.0000000 Min. : 0.0000 Min. :27.82 Min. :-17.8889
1st Qu.:0.0000000 1st Qu.: 0.0000 1st Qu.:39.95 1st Qu.: -5.6417
Median :0.0000000 Median : 0.0000 Median :41.63 Median : -2.9056
Mean :0.0001032 Mean : 0.6065 Mean :40.79 Mean : -2.8952
3rd Qu.:0.0000000 3rd Qu.: 0.0000 3rd Qu.:42.68 3rd Qu.: 0.7106
Max. :2.0000000 Max. :1494.0000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1
1st Qu.: 52
Median : 261
Mean : 468
3rd Qu.: 667
Max. :2535
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-46.0 Min. :-114.0 Min. : 0.000
1st Qu.: 4.000 1st Qu.:160.0 1st Qu.: 54.0 1st Qu.: 1.000
Median : 7.000 Median :216.0 Median : 109.0 Median : 6.000
Mean : 6.442 Mean :213.3 Mean : 105.8 Mean : 6.701
3rd Qu.: 9.000 3rd Qu.:271.0 3rd Qu.: 159.0 3rd Qu.:11.000
Max. :12.000 Max. :403.0 Max. : 254.0 Max. :19.000
nevada prof_nieve longitud latitud
Min. :0.000000 Min. : 0.0000 Min. :27.82 Min. :-17.8889
1st Qu.:0.000000 1st Qu.: 0.0000 1st Qu.:37.84 1st Qu.: -5.6156
Median :0.000000 Median : 0.0000 Median :40.47 Median : -3.1742
Mean :0.000388 Mean : 0.1231 Mean :39.13 Mean : -3.5503
3rd Qu.:0.000000 3rd Qu.: 0.0000 3rd Qu.:41.66 3rd Qu.: 0.4731
Max. :6.000000 Max. :1073.0000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 35.0
Median : 200.0
Mean : 400.8
3rd Qu.: 667.0
Max. :2535.0
if (!empty_nodes) summary(df.cluster04)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. :-35 Min. :-104.00 Min. : 76.00 Min. :0
1st Qu.: 3.000 1st Qu.:118 1st Qu.: 50.00 1st Qu.: 80.00 1st Qu.:0
Median : 9.000 Median :147 Median : 77.00 Median : 86.00 Median :0
Mean : 7.248 Mean :146 Mean : 75.92 Mean : 87.35 Mean :0
3rd Qu.:11.000 3rd Qu.:181 3rd Qu.: 109.00 3rd Qu.: 94.00 3rd Qu.:0
Max. :12.000 Max. :307 Max. : 219.00 Max. :105.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.000 Min. :27.82 Min. :-17.889 Min. : 1.0
1st Qu.: 0.000 1st Qu.:40.78 1st Qu.: -8.411 1st Qu.: 34.0
Median : 0.000 Median :42.43 Median : -4.010 Median : 143.0
Mean : 4.551 Mean :41.35 Mean : -4.345 Mean : 430.3
3rd Qu.: 0.000 3rd Qu.:43.31 3rd Qu.: -1.787 3rd Qu.: 370.0
Max. :784.000 Max. :43.57 Max. : 4.216 Max. :2535.0
if (!empty_nodes) summary(df.cluster05)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. :-47.0 Min. :-115.00 Min. :57.0 Min. :0
1st Qu.: 3.000 1st Qu.:123.0 1st Qu.: 51.00 1st Qu.:60.0 1st Qu.:0
Median : 9.000 Median :151.0 Median : 78.00 Median :64.0 Median :0
Mean : 6.986 Mean :151.3 Mean : 77.22 Mean :64.6 Mean :0
3rd Qu.:11.000 3rd Qu.:187.0 3rd Qu.: 108.25 3rd Qu.:69.0 3rd Qu.:0
Max. :12.000 Max. :336.0 Max. : 215.00 Max. :75.0 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.000 Min. :27.82 Min. :-17.889 Min. : 1.0
1st Qu.: 0.000 1st Qu.:40.78 1st Qu.: -6.829 1st Qu.: 42.0
Median : 0.000 Median :42.44 Median : -3.819 Median : 127.0
Mean : 2.168 Mean :41.29 Mean : -3.925 Mean : 435.5
3rd Qu.: 0.000 3rd Qu.:43.31 3rd Qu.: -1.636 3rd Qu.: 442.0
Max. :606.000 Max. :43.57 Max. : 4.216 Max. :2535.0
if (!empty_nodes) summary(df.cluster06)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. :-42.0 Min. :-108.0 Min. :106.0 Min. :0
1st Qu.: 3.000 1st Qu.:120.5 1st Qu.: 57.0 1st Qu.:110.0 1st Qu.:0
Median :10.000 Median :148.0 Median : 82.0 Median :114.0 Median :0
Mean : 7.729 Mean :147.6 Mean : 79.4 Mean :114.7 Mean :0
3rd Qu.:11.000 3rd Qu.:176.5 3rd Qu.: 108.0 3rd Qu.:120.0 3rd Qu.:0
Max. :12.000 Max. :292.0 Max. : 202.0 Max. :126.0 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.000 Min. :27.92 Min. :-17.755 Min. : 1.0
1st Qu.: 0.000 1st Qu.:40.82 1st Qu.: -8.616 1st Qu.: 27.0
Median : 0.000 Median :42.44 Median : -5.879 Median : 127.0
Mean : 3.535 Mean :41.27 Mean : -5.412 Mean : 380.1
3rd Qu.: 0.000 3rd Qu.:43.00 3rd Qu.: -1.787 3rd Qu.: 370.0
Max. :892.000 Max. :43.57 Max. : 3.035 Max. :2535.0
if (!empty_nodes) summary(df.cluster07)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. :104.0 Min. : 23.00 Min. :200.0 Min. :0
1st Qu.: 2.000 1st Qu.:113.5 1st Qu.: 63.00 1st Qu.:209.2 1st Qu.:0
Median : 6.500 Median :125.5 Median : 73.50 Median :222.0 Median :0
Mean : 6.346 Mean :156.5 Mean : 88.35 Mean :223.8 Mean :0
3rd Qu.:10.750 3rd Qu.:154.5 3rd Qu.: 91.50 3rd Qu.:233.2 3rd Qu.:0
Max. :12.000 Max. :331.0 Max. :223.00 Max. :259.0 Max. :0
prof_nieve longitud latitud altitud
Min. :0 Min. :28.31 Min. :-16.499 Min. : 19.0
1st Qu.:0 1st Qu.:41.67 1st Qu.: -8.624 1st Qu.: 261.0
Median :0 Median :42.24 Median : -8.411 Median : 263.0
Mean :0 Mean :40.89 Mean : -6.862 Mean : 473.1
3rd Qu.:0 3rd Qu.:42.89 3rd Qu.: -3.579 3rd Qu.: 370.0
Max. :0 Max. :43.30 Max. : 2.825 Max. :2371.0
if (!empty_nodes) summary(df.cluster08)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : -4.0 Min. :-48.00 Min. :127.0 Min. :0
1st Qu.: 2.000 1st Qu.:117.5 1st Qu.: 55.50 1st Qu.:132.0 1st Qu.:0
Median :10.000 Median :133.0 Median : 71.00 Median :138.0 Median :0
Mean : 7.538 Mean :139.5 Mean : 75.32 Mean :138.5 Mean :0
3rd Qu.:11.000 3rd Qu.:165.0 3rd Qu.: 96.50 3rd Qu.:145.0 3rd Qu.:0
Max. :12.000 Max. :326.0 Max. :207.00 Max. :155.0 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.000 Min. :27.82 Min. :-17.889 Min. : 1.0
1st Qu.: 0.000 1st Qu.:41.81 1st Qu.: -8.624 1st Qu.: 43.3
Median : 0.000 Median :42.43 Median : -8.411 Median : 261.0
Mean : 0.883 Mean :41.40 Mean : -6.288 Mean : 368.5
3rd Qu.: 0.000 3rd Qu.:42.89 3rd Qu.: -3.831 3rd Qu.: 370.0
Max. :79.000 Max. :43.49 Max. : 2.827 Max. :2371.0
if (!empty_nodes) summary(df.cluster09)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 37.0 Min. :-11.00 Min. :279.0 Min. :0
1st Qu.: 2.750 1st Qu.:108.2 1st Qu.: 49.75 1st Qu.:294.2 1st Qu.:0
Median : 5.500 Median :127.0 Median : 78.50 Median :307.0 Median :0
Mean : 6.125 Mean :157.5 Mean : 90.75 Mean :323.1 Mean :0
3rd Qu.: 9.000 3rd Qu.:194.0 3rd Qu.:137.25 3rd Qu.:332.8 3rd Qu.:0
Max. :12.000 Max. :350.0 Max. :204.00 Max. :422.0 Max. :0
prof_nieve longitud latitud altitud
Min. :0 Min. :28.31 Min. :-16.499 Min. : 4.0
1st Qu.:0 1st Qu.:41.42 1st Qu.: -8.649 1st Qu.: 19.0
Median :0 Median :42.33 Median : -8.517 Median : 262.0
Mean :0 Mean :40.50 Mean : -7.103 Mean : 493.2
3rd Qu.:0 3rd Qu.:42.54 3rd Qu.: -2.827 3rd Qu.: 437.2
Max. :0 Max. :43.36 Max. : -1.033 Max. :2371.0
if (!empty_nodes) summary(df.cluster10)
fecha_cnt tmax tmin precip nevada
Min. : 1 Min. : -8.0 Min. :-58.00 Min. :156.0 Min. :0
1st Qu.: 3 1st Qu.:106.2 1st Qu.: 43.25 1st Qu.:163.0 1st Qu.:0
Median :11 Median :131.5 Median : 69.50 Median :171.0 Median :0
Mean : 8 Mean :126.8 Mean : 65.87 Mean :173.0 Mean :0
3rd Qu.:11 3rd Qu.:147.8 3rd Qu.: 90.75 3rd Qu.:183.8 3rd Qu.:0
Max. :12 Max. :320.0 Max. :189.00 Max. :197.0 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00 Min. :28.31 Min. :-16.499 Min. : 4.00
1st Qu.: 0.00 1st Qu.:40.78 1st Qu.: -8.624 1st Qu.: 71.95
Median : 0.00 Median :42.24 Median : -8.411 Median : 261.00
Mean : 11.66 Mean :40.95 Mean : -6.164 Mean : 558.26
3rd Qu.: 0.00 3rd Qu.:42.89 3rd Qu.: -3.876 3rd Qu.: 370.00
Max. :607.00 Max. :43.46 Max. : 2.825 Max. :2400.00
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1], dim(df.cluster04)[1], dim(df.cluster05)[1], dim(df.cluster06)[1], dim(df.cluster07)[1], dim(df.cluster08)[1], dim(df.cluster09)[1], dim(df.cluster10)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03", "cluster04", "cluster05", "cluster06", "cluster07", "cluster08", "cluster09", "cluster10"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.hist(df.cluster04)
if (!empty_nodes) mpr.hist(df.cluster05)
if (!empty_nodes) mpr.hist(df.cluster06)
if (!empty_nodes) mpr.hist(df.cluster07)
if (!empty_nodes) mpr.hist(df.cluster08)
if (!empty_nodes) mpr.hist(df.cluster09)
if (!empty_nodes) mpr.hist(df.cluster10)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster04)
if (!empty_nodes) mpr.boxplot(df.cluster05)
if (!empty_nodes) mpr.boxplot(df.cluster06)
if (!empty_nodes) mpr.boxplot(df.cluster07)
if (!empty_nodes) mpr.boxplot(df.cluster08)
if (!empty_nodes) mpr.boxplot(df.cluster09)
if (!empty_nodes) mpr.boxplot(df.cluster10)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
df.cluster04.grouped <- mpr.group_by_geo(df.cluster04)
df.cluster05.grouped <- mpr.group_by_geo(df.cluster05)
df.cluster06.grouped <- mpr.group_by_geo(df.cluster06)
df.cluster07.grouped <- mpr.group_by_geo(df.cluster07)
df.cluster08.grouped <- mpr.group_by_geo(df.cluster08)
df.cluster09.grouped <- mpr.group_by_geo(df.cluster09)
df.cluster10.grouped <- mpr.group_by_geo(df.cluster10)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster04.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster05.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster06.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster07.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster08.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster09.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster10.grouped)